package sv.gob.mtps.hr.dao;

import java.util.List;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;

import sv.gob.mtps.hr.model.CatEstadoEmpleado;
import sv.gob.mtps.hr.model.CatEstadocivil;
import sv.gob.mtps.hr.model.CatGenero;
import sv.gob.mtps.hr.model.CatNacionalidad;
import sv.gob.mtps.hr.model.DepMunVw;
import sv.gob.mtps.hr.model.SferhEmpleado;

@Repository
public class RegistroPersonalDAOImpl implements RegistroPersonalDAO{
	
	@Autowired
    private SessionFactory sessionFactory;

	@Override
	public void addSferhEmpleado(SferhEmpleado SferhEmpleado) {
		sessionFactory.getCurrentSession().save(SferhEmpleado);		
	}

	@Override
	public List<SferhEmpleado> listSferhEmpleado() {
		return sessionFactory.getCurrentSession().createQuery("from SferhEmpleado").list();
	}

	@Override
	public void removeSferhEmpleado(Integer id) {
		SferhEmpleado SferhEmpleado = (SferhEmpleado)sessionFactory.getCurrentSession().load(SferhEmpleado.class, id);
		if(SferhEmpleado != null){
			sessionFactory.getCurrentSession().delete(SferhEmpleado);
		}		
	}

	@Override
	public SferhEmpleado findSferhEmpleado(Integer id) {
		return (SferhEmpleado)sessionFactory.getCurrentSession().get(SferhEmpleado.class, id);
	}

	@Override
	public void editSferhEmpleado(SferhEmpleado SferhEmpleado) {
		// TODO Auto-generated method stub
		sessionFactory.getCurrentSession().update(SferhEmpleado);
	}

	@Override
	public List<CatGenero> listGenero() {
		// TODO Auto-generated method stub
		String hql = "from CatGenero";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<CatEstadocivil> listEstadoCivil() {
		// TODO Auto-generated method stub
		String hql = "from CatEstadocivil";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<CatNacionalidad> listNacionalidad() {
		// TODO Auto-generated method stub
		String hql ="from CatNacionalidad";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<DepMunVw> listMunicipios() {
		// TODO Auto-generated method stub
		String hql = "from DepMunVw";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

	@Override
	public List<CatEstadoEmpleado> listEstadoEmpleado() {
		// TODO Auto-generated method stub
		String hql = "from CatEstadoEmpleado";
		return sessionFactory.getCurrentSession().createQuery(hql).list();
	}

}
